package com.yc.hr.biz;

import java.util.Map;

import com.yc.hr.dao.DeptDao;
import com.yc.hr.util.CheckUtils;

public class DeptBiz {
	
	DeptDao dao = new DeptDao();
	
	public void create(String dname, String loc) throws BizException{
		// 判断输入值
		CheckUtils.check(dname == null || dname.isBlank(), "请输入部门名称!");
		CheckUtils.check(loc == null || loc.isBlank(), "请输入部门位置!");
		CheckUtils.check(dname.trim().length() < 2, "部门名称至少是2个字符!");
		// TODO 其他的验证, 请自行扩展
		
		// 同名判断
		CheckUtils.check(dao.existsByDname(dname),"该部门已经存在!");
		
		// 执行 insert
		dao.insert(dname, loc);
	}

	public void remove(Object deptno) throws BizException {
		CheckUtils.check(deptno == null, "请输入部门编号!");
		CheckUtils.check(dao.existsByDeptno(deptno),"该部门还有员工不能删除!");
		dao.deleteByDeptno(deptno);
	}
	
	// 修改字段比较多, 用map集合可以减少传参的数量
	public void modify(Map<String,Object> dept) throws BizException{
		String dname = dept.get("DNAME").toString();
		String loc = dept.get("LOC").toString();
		String deptno = dept.get("DEPTNO").toString();
		// 判断输入值
		CheckUtils.check(deptno == null || deptno.isBlank(), "请输入部门编号!");
		CheckUtils.check(dname == null || dname.isBlank(), "请输入部门名称!");
		CheckUtils.check(loc == null || loc.isBlank(), "请输入部门位置!");
		CheckUtils.check(dname.trim().length() < 2, "部门名称至少是2个字符!");
		// TODO 其他的验证, 请自行扩展
		
		// 同名判断
		CheckUtils.check(dao.existsByDname(dname, deptno),"该部门已经存在!");
		
		// 执行 insert
		dao.updateByDeptno(dept);
	}
}

